% Publishing on crates.io
Once you've got a library that you'd like to share with the world, it's time to
-publish it on [crates.io][crates-io]! Publishing a crate is when a specific
+publish it on [crates.io]! Publishing a crate is when a specific
version is uploaded to be hosted on crates.io.
Take care when publishing a crate, because a publish is **permanent**. The
# Before your first publish
-First thing’s first, you’ll need an account on [crates.io][crates-io] to acquire
-an API token. To do so, [visit the home page][crates-io] and log in via a GitHub
+First thing’s first, you’ll need an account on [crates.io] to acquire
+an API token. To do so, [visit the home page][crates.io] and log in via a GitHub
account (required for now). After this, visit your [Account
Settings](https://crates.io/me) page and run the `cargo login` command
specified.

-[crates-io]: https://crates.io/
+[crates.io]: https://crates.io/
# Adding Dependencies from crates.io
-[crates.io][crates-io] is the Rust community's central repository that serves
+[crates.io] is the Rust community's central repository that serves
as a location to discover and download packages. `cargo` is configured to use
it by default to find requested packages.
To depend on a library hosted on [crates.io], add it to your `Cargo.toml`.
-[crates-io]: https://crates.io/
+[crates.io]: https://crates.io/
## Adding a dependency
time = "0.1.12"
```
-The version string is a [semver][semver] version requirement. The [specifying
+The version string is a [semver] version requirement. The [specifying
dependencies](specifying-dependencies.html) docs have more information about
the options you have here.
time = "0.1.12"
```
-The string `"0.1.12"` is a [semver][semver] version requirement. Since this
+The string `"0.1.12"` is a [semver] version requirement. Since this
string does not have any operators in it, it is interpreted the same way as
if we had specified `"^0.1.12"`, which is called a caret requirement.